Лексичний аналіз

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лекція
Предмет:
Інші

Частина тексту файла

 EMBED Equation.3 Лексичний аналіз Етап лексичної обробки тексту вхідної програми виділяється у окремий етап роботи компілятора як з методичною метою, так і з метою скорочення загального часу компіляції програми. Це скорочення досягається за рахунок того, що програма користувача, яка на вході компілятора сприймається як неперервна послідовність символів, на етапі лексичної обробки перетворюється до деякого стандартного вигляду, що полегшує подальший аналіз. При цьому використовуються спеціалізовані алгоритми перетворення, теорія побудови, а також аспекти практичного застосування яких розроблені досить ґрунтовно. Задачі і функціонування лексичного аналізатора Під лексичним аналізом будемо розуміти процес попередньої обробки вхідної програми, під час якого зчитуються літери вхідної програми і будуються(розпізнаються) основні лексичні одиниці цієї програми − лексеми (символи, слова, атоми). Вибір конструкцій, які будуть виділятись як окремі лексеми, залежить від мови і точки зору розробників компілятора. Наприклад, можна розглядати у ролі лексеми як ціле, так і дійсне число вигляду < ціле > . < ціле > або розглядати ціле число як символ, а дійсне − як конструкцію вищого рівня. Зазвичай основними символами є службові слова, ідентифікатори, мітки, константи, одно- або двосимвольні розділювачі. Кожній лексемі будемо ставити у відповідність пару ( тип_лексеми, дані_про_лексему ). Кожну таку пару будемо називати лексемою-дескриптором. Отже, входом лексичного аналізатора є потік вхідних літер (рядок), а виходом − потік(послідовність) лексем-дескрипторів. Тип_лексеми − це зазвичай, числовий або символьний код класу лексеми (синтаксична категорія), який показує, що лексема належить одному із скінченої множини класів слів, виділених у мові програмування. Дані_про лексему − це адреса області або покажчик на адресу області основної пам'яті, де зберігається інформація про дану лексему. Це може бути також індекс елементу таблиці, у якій зберігається значення цієї лексеми. Кількість класів лексем ( тобто різних видів слів) у мовах програмування може бути різною. Найчастіше зустрічаються такі класи: ідентифікатори; службові (ключові) слова; константи; розділювачі (можуть бути віднесені до одного класу або декількох класів). Можуть розглядатись і інші класи. Це обумовлено тою роллю, яку відіграють різні види слів при написанні вхідної програми і перекладі її на машинну програму. При цьому найбажанішим є розбиття всієї множини допустимих у мові слів на класи, що не перетинаються між собою. У цьому випадку лексичний аналіз буде ефективнішим. У загальному випадку всі виділені класи будуть або скінченними (службові слова, розділювачі) − класи фіксованих для даної мови програмування слів, або нескінченними чи дуже великими (ідентифікатори, константи, мітки) − класи змінних для даної мови програмування слів. Лексеми-дескриптори для слів із скінченних класів завжди однакові у різних програмах для даного компілятора. Дескриптори для слів з нескінченних класів різні для різних програм і формуються щоразу на етапі лексичного аналізу. Під час лексичного аналізу або паралельно з ним значення лексем із нескінченних класів записуються у відповідні таблиці. Скінченністю таблиць пояснюються обмеження, які існують у мовах програмування щодо довжини і кількості використовуваних у програмах ідентифікаторів і констант. Варто зауважити, що числові константи перед занесенням їх у таблицю можуть перетворюватись із зовнішнього символьного зображення у внутрішній машинний код. Вміст таблиць, а особливо таблиці ідентифікаторів, поповнюється на етапі семантичного аналізу програми і використовується на етапі генерації об'єктної програми. Отже, лексичний аналізатор − це транслятор з вхідної мови на мову лексем-дескрипторів. Він також усуває несуттєві літери (пробіли, символи табуляції, переходу на новий рядок) і коментарі. Розглянемо основні ідеї, які лежать у основі побудови лексичного аналізатора, проблеми, які при цьому виникають, і пі...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини